﻿#include "UrlDelegate.h"

UrlDelegate::UrlDelegate(QObject* parent)
	:QStyledItemDelegate(parent)
{

}

void UrlDelegate::paint(QPainter* painter, const QStyleOptionViewItem& option, const QModelIndex& index) const
{
	painter->save();


	//设置鼠标选中的文本颜色：
	painter->setPen(option.state & QStyle::State_MouseOver ? Qt::green : Qt::white);	//如果鼠标移动到文本位置，就设置文本颜色为绿色，否则就是白色

	//设置字体：
	auto font = painter->font();
	//设置下划线：
	font.setUnderline(option.state & QStyle::State_MouseOver);
	painter->setFont(font);

	//绘制文本：
	painter->drawText(option.rect, index.data().toString(), QTextOption(Qt::AlignCenter));


	painter->restore();
}

bool UrlDelegate::editorEvent(QEvent* event, QAbstractItemModel* model, const QStyleOptionViewItem& option, const QModelIndex& index)
{
	//鼠标按下，获取点击的项的行数和列数：	
	if (event->type() == QEvent::MouseButtonRelease)
	{
		//发送信号给SideDisplayFrame类去处理：
		emit requestOpenUrl(index);
	}


	return QStyledItemDelegate::editorEvent(event,model,option,index);
}
